<?php


/*
余额支付API
*/

//注：is_guarantee=1代表分润单（选填） ，不调分润资金不会结算


//生成随机单号
$number = mt_rand(13021003,999999999);
echo $number;
echo "<br/><hr>";






//获取时间戳
$currentTime = date("YmdHis");



//定义参数值
$version = '1';//版本号
$pay_type = '3';// 支付类型。2=个人余额支付，3=商户余额支付
$agent_id = '';//商户编号
$agent_bill_id = $number;//商户系统内部的订单号（要保证唯一）
$ref_agent_id = '';//不参与签名
$agent_bill_time = $currentTime;//提交单据的时间yyyyMMddHHmmss
$client_id = '';//支付账户id
$client_account = '';//支付账号
$is_redirect = '0';//是否直接跳转，选中后直接跳转至密码输入页面。1=是，0=否
$is_phone = '0';//1=手机端，0=pc端
$pay_amt = '0.01';//订单总金额 不可为空，取值范围（0.01到10000000.00），单位：元，小数点后保留两位。
$auth_code = '';//免密支付授权码
$notify_url = 'https://';//异步通知地址
$return_url = 'https://';//支付后返回的商户显示页面
$user_ip = '127_127_12_12';//用户真实的IP 127_127_12_12
$goods_name = '测试';//商品名称，不能为空（不参加签名）
$goods_num = '1';//产品数量（不参加签名）
$is_guarantee = true;
$remark = '测试';//商户自定义，原样返回,可以为空。（不参加签名）
$goods_note = '测试';//支付说明，（不参加签名）
$auth_type = '0';//验证方式，0表示密码方式，1手机验证码方式，2=免密（需要单独申请），不参加签名。不传默认0
$is_guarantee = true;//是否需要分润
$key = '';//密钥


//请求参数中，中文需要utf-8格式  URLencode编码
$New_goods_name = urlencode($goods_name);

$New_remark = urlencode($remark);

$New_goods_note = urlencode($goods_note);


// 请求参数（使用 & 符号拼接）注：如果有子商户则子商户字段传值。

if (empty($ref_agent_id)){
    $data = "version=$version&agent_id=$agent_id&agent_bill_id=$agent_bill_id&agent_bill_time=$agent_bill_time&client_id=$client_id&pay_type=$pay_type&pay_amt=$pay_amt&notify_url=$notify_url&return_url=$return_url&user_ip=$user_ip&key=$key";
    echo '待加密数据-------------->'.$data;
    echo "<br/><hr>";
    $sign = md5($data);
    echo '加密后数据'.$sign;
    echo "<br/><hr>";
    $param = "version=$version&is_phone=$is_phone&is_redirect=$is_redirect&agent_id=$agent_id&agent_bill_id=$agent_bill_id&agent_bill_time=$agent_bill_time&client_id=$client_id&pay_type=$pay_type&pay_amt=$pay_amt&notify_url=$notify_url&return_url=$return_url&user_ip=$user_ip&sign=$sign&goods_name=$New_goods_name&goods_num=$goods_num&remark=$New_remark&goods_note=$New_goods_note&auth_code=$auth_code&is_guarantee=$is_guarantee";
    echo '待请求参数-------------->'.$param;
    echo "<br/><hr>";
}else{
    $data = "version=$version&agent_id=$agent_id&agent_bill_id=$agent_bill_id&agent_bill_time=$agent_bill_time&client_id=$client_id&pay_type=$pay_type&pay_amt=$pay_amt&notify_url=$notify_url&return_url=$return_url&user_ip=$user_ip&key=$key";
    echo '待加密数据-------------->'.$data;
    echo "<br/><hr>";
    $sign = md5($data);
    echo '加密后数据'.$sign;
    echo "<br/><hr>";
    $param = "version=$version&is_phone=$is_phone&is_redirect=$is_redirect&agent_id=$agent_id&agent_bill_id=$agent_bill_id&agent_bill_time=$agent_bill_time&client_id=$client_id&pay_type=$pay_type&pay_amt=$pay_amt&notify_url=$notify_url&return_url=$return_url&user_ip=$user_ip&sign=$sign&goods_name=$New_goods_name&goods_num=$goods_num&remark=$New_remark&goods_note=$New_goods_note&ref_agent_id=$ref_agent_id&auth_code=$auth_code&is_guarantee=$is_guarantee";
    echo '待请求参数-------------->'.$param;
    echo "<br/><hr>";
}

//请求地址
$url = 'https://Pay.Heepay.com/API/BalPay/ApplyPay.aspx';

//设置请求头
$opts = array (
    'http' => array (
        'method' => 'POST',
        'header'=> "Content-type: application/x-www-form-urlencoded\r\n" .
            "Content-Length: " . strlen($param) . "\r\n",
        'content' => $param
    )
);
$ctx = stream_context_create($opts);

$html = @file_get_contents($url,'',$ctx);
echo $html

?>